package TP2.implementation;

import TP1.TDA.ColaVIPTDA;
import TP2.NodoListaVIP;

public class ColaVIPListaImpl implements ColaVIPTDA {
	NodoListaVIP inicio;

	public void inicializar() {
		inicio = null;
	}

	public boolean vacia() {
		return (inicio == null);
	}

	public void acolar(int valor, int prioridad) {
		NodoListaVIP nuevo = new NodoListaVIP(valor, prioridad, null);
		NodoListaVIP aux = inicio;
		NodoListaVIP prev = null;

		while (aux != null && aux.getPrioridad() >= nuevo.getPrioridad()) {
			prev = aux;
			aux = aux.getSgte();
		}
		if (prev == null) {
			nuevo.setSgte(inicio);
			inicio = nuevo;
		} else {
			nuevo.setSgte(aux);
			prev.setSgte(nuevo);
		}
	}

	public void descolar() {
		inicio = inicio.getSgte();
	}

	public int valorPrimero() {
		return inicio.getContenido();
	}

	public int prioridadPrimero() {
		return inicio.getPrioridad();
	}

}
